import Vuex from "vuex";
import Vue from "vue";
import CacheUtils from "@/utils/CacheUtils";
/**
 * 只需要在modules创建不需要单独引入
 */
Vue.use(Vuex);
const files = require.context("./modules", false, /\.js/);
const modules = {};
files.keys().forEach(key => {
	// 使用正则表达式提取文件名（不包含扩展名）
	const name = key.replace(/^.*\/(.+)\.js$/, '$1');
	modules[name] = files(key).default;
});

// 手动实现 basename 功能，替代 path.basename
// function basename(filename, ext) {
// 	const normalizedFilename = filename.replace(/\\/g, '/');
// 	let base = normalizedFilename.substring(normalizedFilename.lastIndexOf('/') + 1);
// 	if (ext && base.endsWith(ext)) {
// 		base = base.substring(0, base.length - ext.length);
// 	}
// 	return base;
// }
//
// files.keys().forEach(key => {
// 	const name = basename(key, ".js");
// 	modules[name] = files(key).default;
// });

const store = new Vuex.Store({ modules });

export function setupStore() {
	store.commit("user/changeUser", CacheUtils.getCache("user") || null);
}
export default store;
